package com.todo.member.application.service;

import com.todo.common.common.entity.response.page.PageResult;
import com.todo.member.application.entity.bo.MemberMedalInfoBO;
import com.todo.member.application.entity.condition.MemberMedalConditionBO;
import com.todo.member.common.enums.MedalStatusEnum;

/**
 * @author azhebuxing
 * @date 2025/2/12 21:57
 * @description
 */
public interface MemberMedalInfoService {
    /**
     * 添加会员勋章信息
     *
     * @param memberMedalInfoBO
     * @return
     */
    Boolean insertMemberMedalInfo(MemberMedalInfoBO memberMedalInfoBO);

    /**
     * 更新会员勋章信息
     *
     * @param memberMedalInfoBO
     * @return
     */
    Boolean updateMemberMedalInfo(MemberMedalInfoBO memberMedalInfoBO);

    /**
     * 根据主键删除会员勋章信息
     *
     * @param id
     * @return
     */
    Boolean removeMemberMedalInfoById(Long id);

    /**
     * 根据主键查询会员勋章信息
     *
     * @param id
     * @return
     */
    MemberMedalInfoBO queryMemberMedalInfoById(Long id);

    /**
     * 更新会员勋章信息状态
     *
     * @param id
     * @param oldStatus
     * @param newStatus
     * @return
     */
    Boolean updateMemberMedalInfoStatusById(Long id, MedalStatusEnum oldStatus, MedalStatusEnum newStatus);

    /**
     * 多条件分页查询会员勋章信息
     *
     * @param memberMedalInfoBO
     * @return
     */
    PageResult<MemberMedalInfoBO> queryMemberMedalInfoByPage(MemberMedalConditionBO memberMedalInfoBO);
}
